package com.wind.trademark.task.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.wind.trademark.base.model.BsCategory;
import com.wind.trademark.common.exception.TmException;
import com.wind.trademark.common.vo.ComboBean;
import com.wind.trademark.common.vo.PageBean;
import com.wind.trademark.common.vo.PageParam;
import com.wind.trademark.task.model.TkAttachment;
import com.wind.trademark.task.model.TkImg;
import com.wind.trademark.task.model.TkTask;
import com.wind.trademark.task.model.TkTaskLog;
import com.wind.trademark.task.model.TkTaskStatus;
import com.wind.trademark.task.vo.AttachmentFileUploadBean;
import com.wind.trademark.task.vo.ImageFileUploadBean;
import com.wind.trademark.task.vo.TaskProfile;
import com.wind.trademark.task.vo.TaskLogVo;


/**
 * @author <a href="mailto:xmufeng@163.com">Wind Wu</a>
 * 
 */
public interface TaskService {

	TkTask saveOrUpateTask(TkTask task);


	
	PageBean queryTask(PageParam pageParam, Map<String, Object> params);

	void deleteTask(TkTask task);

	TkTask getTask(Long id);


	
	TkImg saveTkImg(TkImg tkImg);
	
	TkImg updateTkImg(TkImg tkImg);
	
	List<TkImg> queryTask(Map<String, Object> params);
	
	
	TkAttachment getTkAttachment(Long id);

	TkImg getTkImg(Long id);
	
	TkAttachment saveTkAttachment(TkImg tkImg);
	
	TkAttachment updateTkAttachment(TkImg tkImg);
	
	List<TkAttachment> queryTkAttachment(Map<String, Object> params);

	TkImg saveTkImg(ImageFileUploadBean imageFileUploadBean) throws IOException;

	void addCategoryListToTask(Long taskId, Long categoryId, List<Long> categories);
	
	void removeAllCategoryWithTask(Long taskId);



	List<BsCategory> getL3CategoriesByTaskId(Long taskId);



	TaskProfile getTask4Bill(Long taskId);

 

	List<ComboBean> getAllTask();



	List<TkTask> getAllTask2();

 

	List<ComboBean> goolgeTask(Map<String, Object> params);



	PageBean getLogListByTaskId(PageParam pageParam, Long taskId);



	TkTaskLog saveOrUpdateTaskLog(TkTaskLog tkTaskProgress);



	TkTaskLog loadTaskLog(Long id);



	List<TkTaskStatus> getCurrentTaskStatusList(String code);



	TkTask updateTaskStatus(Long taskId, String status) throws TmException;



	List<TkTaskStatus> getTaskStatusList();



	TkTaskStatus getCurrentStatusByTaskId(Long taskId);



	List<TkImg> getImageListByTaskId(Long taskId);



	List<TkAttachment> getAttachmentListByTaskId(Long taskId);



	void deleteTkImg(List<Long> asList);



	void deleteTkAttachment(List<Long> asList);



	TkAttachment saveTkAttachment(AttachmentFileUploadBean attachmentFileUploadBean)throws IOException;	
	
	
	
}